/****************************************************************************
** 
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
** 
** This file is part of a Qt Solutions component.
**
** Commercial Usage  
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Solutions Commercial License Agreement provided
** with the Software or, alternatively, in accordance with the terms
** contained in a written agreement between you and Nokia.
** 
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
** 
** In addition, as a special exception, Nokia gives you certain
** additional rights. These rights are described in the Nokia Qt LGPL
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
** package.
** 
** GNU General Public License Usage 
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
** 
** Please note Third Party Software included with Qt Solutions may impose
** additional restrictions and it is the user's responsibility to ensure
** that they have met the licensing requirements of the GPL, LGPL, or Qt
** Solutions Commercial license and the relevant license of the Third
** Party Software they are using.
** 
** If you are unsure which license is appropriate for your use, please
** contact Nokia at qt-info@nokia.com.
** 
****************************************************************************/

const int graph1[] = {0, 0, 0, 1, 2, 3, -1, -3, -3, -4, -7, -8, -9, -11, -11, -11, -11, -11,
		      -12, -10, -7, -7, -7, -6, -3, -7, -6, -7, -10, -9, -5, -2, -3, -5, -8,
		      -8, -4, -5, -4, -4, -5, -5, -9, -9, -8, -11, -10, -10, -7, -9, -8, -12,
		      -15, -13, -14, -15, -16, -19, -19, -19, -20, -24, -26, -28, -29, -30,
		      -28, -32, -32, -29, -26, -27, -26, -25, -25, -26, -26, -25, -22, -20,
		      -22, -21, -22, -20, -19, -16, -13, -13, -13, -12, -13, -14, -13, -13,
		      -11, -13, -13, -12, -16, -19, -18, -21, -22, -20, -20, -20, -17, -18,
		      -15, -16, -19, -21, -18, -20, -22, -20, -17, -17, -18, -19, -21, -19,
		      -22, -20, -19, -19, -20, -19, -20, -16, -16, -19, -19, -18, -19, -19,
		      -16, -16, -15, -15, -12, -10, -10, -12, -12, -9, -8, -9, -10, -10, -8,
		      -10, -9, -11, -9, -10, -9, -8, -10, -10, -8, -3, -5, -2, 0, -1, -3, -2,
		      -2, -3, 0, 0, -3, -2, -2, -3, -5, -8, -8, -12, -14, -10, -11, -10, -10,
		      -15, -15, -16, -19, -15, -18, -17, -18, -16, -20, -21, -18, -17, -14,
		      -11, -14, -12, -11, -13, -13, -15, -12, -17, -19, -18, -17, -19, -19,
		      -21, -22, -18, -18, -20, -20, -22, -23, -21, -20, -19, -18, -16, -19,
		      -23, -23, -25, -23, -21, -21, -17, -17, -16, -12, -10, -10, -6, -4, -4,
		      -4, -4, -6, -5, -6, -4, -3, -3, -6, -6, -4, -2, 0, 2, 5, 5, 8, 9, 11,
		      11, 11, 6, 6, 2, 2, 5, 3, 2, -1, 2, 5, 1, 1, 3, 5, 4, 1, 0, -1, -2, 0,
		      0, 0, -1, -4, -4, -7, -8, -6, -3, -3, 0, -3, -5, -7, -5, -6, -3, -2,
		      -1, -1, -3, -3, -1, -1, 0, 1, 2, 1, 2, 1, 3, 6, 4, 5, 5, 4, 2, 4, 3,
		      6, 7, 5, 0, 4, 7, 7, 5, 9, 10, 13, 10, 8, 11, 10, 11, 8, 5, 7, 7, 7,
		      6, 4, 3, 3, 1, 0, 2, 2, 0, 0, 2, 0, -1, 0, -3, -2, -1, 0, 1, 1, -1,
		      -3, -3, -6, -4, -3, -2, -5, -3, -5, -3, 0, -1, -3, -2, -2, -2, -2, -3,
		      -2, -3, -5, -6, -6, -7, -9, -12, -13, -16, -15, -18, -18, -15, -15, -13,
		      -15, -15, -14, -12, -10, -9, -8, -8, -5, -5, -6, -6, -7, -6, -2, -1, 0,
		      0, 0, 0, 0, 0, 3, 0, 3, 3, 2, 4, 3, 3, 7, 9, 12, 10, 8, 9, 9, 9, 10, 12,
		      15, 13, 9, 12, 12, 10, 11, 12, 9, 9, 11, 13, 17, 13, 18, 16, 16, 16, 15,
		      16, 14, 16, 17, 18, 19, 23, 27, 25, 27, 31, 32, 34, 34, 32, 32, 34, 36,
		      38, 42, 40, 40, 40, 36, 39, 36, 37, 38, 35, 37, 37, 37, 34, 37, 37, 38,
		      41, 38, 39, 40, 40, 38, 41, 37, 33, 33, 32, 33, 35, 34, 32, 33, 35, 37,
		      41, 44, 43, 43, 44, 43, 43, 43, 39, 38, 40, 37, 35, 35, 34, 35, 33, 36,
		      33, 33, 31, 27, 29, 29, 27, 27, 29, 27, 26, 26, 26, 25, 29, 32, 29, 26,
		      24, 23, 23, 23, 23, 18, 21, 22, 23, 25, 26, 22, 25, 22, 24, 26, 28, 27,
		      29, 31, 31, 28, 27, 26, 28, 30, 30, 34, 31, 32, 31, 34, 30, 27, 25, 26,
		      27, 27, 26, 24, 25, 23, 26, 25, 25, 27, 26, 27, 23, 22, 21, 20, 19, 16,
		      17, 19, 18, 19, 19, 22, 21, 23, 21, 19, 23, 24, 20, 17, 15, 14, 13, 12,
		      16, 18, 21, 21, 20, 18, 20, 23, 20, 17, 16, 19, 22, 19, 20, 20, 20, 19,
		      20, 23, 25, 27, 23, 24, 24, 26, 26, 22, 23, 23, 24, 26, 29, 28, 31, 28,
		      25, 25, 22, 21, 19, 19, 19, 19, 17, 18, 21, 17, 16, 19, 19, 18, 16, 17,
		      18, 17, 17, 15, 15, 14, 12, 12, 12, 8, 7, 11, 10, 10, 9, 10, 10, 9, 7,
		      6, 9, 12, 11, 11, 14, 15, 17, 18, 15, 16, 19, 21, 18, 18, 20, 19, 19,
		      19, 20, 19, 21, 21, 23, 24, 25, 27, 28, 25, 25, 27, 22, 24, 21, 21, 22,
		      20, 22, 23, 26, 28, 26, 29, 28, 27, 27, 27, 28, 28, 30, 30, 28, 28, 32,
		      33, 33, 29, 30, 32, 28, 28, 27, 29, 32, 30, 31, 29, 31, 30, 28, 28, 28,
		      26, 24, 27, 29, 27, 27, 28, 27, 27, 25, 24, 25, 21, 20, 20, 19, 20, 23,
		      25, 24, 22, 18, 16, 15, 15, 12, 16, 12, 7, 8, 3, 3, 5, 4, 2, 2, 7, 8, 9,
		      11, 11, 10, 9, 13, 14, 18, 17, 14, 12, 15, 14, 14, 13, 15, 14, 14, 12,
		      14, 12, 9, 9, 8, 7, 8, 8, 9, 6, 8, 6, 8, 12, 11, 10, 12, 11, 11, 12, 12,
		      14, 14, 15, 14, 14, 10, 8, 9, 11, 7, 5, 5, 6, 4, 5, 2, 6, 3, 0, 0, 0,
		      -1, -5, -5, -5, -6, -8, -10, -10, -13, -14, -10, -8, -10, -12, -14, -14,
		      -18, -16, -20, -22, -18, -15, -18, -16, -19, -20, -23, -21, -23, -25,
		      -27, -32, -29, -29, -33, -35, -31, -32, -34, -34, -34, -35, -35, -37,
		      -38, -37, -41, -40, -42, -45, -48, -50, -49, -46, -48, -48, -45, -46,
		      -46, -46, -44, -46, -45, -42, -42, -41, -41, -42, -45, -45, -48, -47,
		      -48, -49, -45, -46, -42, -45, -41, -39, -38, -40, -37, -39, -37, -41,
		      -41, -39, -39, -42, -44, -45, -44, -44, -46, -45, -46, -46, -44, -41,
		      -40, -43, -45, -46, -49, -48, -47, -47, -47, -47, -46, -44, -42, -43,
		      -43, -40, -43, -43, -42, -39, -40, -41, -45, -44, -43, -43, -45, -44,
		      -48, -45, -46, -45, -49, -50, -49, -50, -53};

const int graph2[] = {0, 0, 0, 1, 2, 2, 3, 4, 5, 4, 6, 7, 11, 9, 8, 11, 10, 8, 7, 7, 4, 5, 8,
		      8, 8, 4, 4, 6, 6, 6, 8, 4, 5, 4, 4, 6, 11, 12, 7, 8, 9, 6, 7, 7, 5, 8,
		      9, 12, 10, 12, 8, 10, 10, 6, 7, 7, 10, 10, 12, 12, 15, 16, 16, 12, 13,
		      14, 16, 15, 18, 14, 13, 17, 15, 15, 19, 18, 20, 21, 25, 25, 25, 23, 24,
		      28, 25, 24, 25, 26, 26, 23, 25, 29, 30, 31, 31, 31, 32, 35, 30, 32, 32,
		      30, 25, 27, 28, 28, 31, 31, 30, 29, 27, 29, 30, 31, 31, 32, 34, 36, 35,
		      39, 40, 40, 40, 40, 42, 44, 44, 43, 46, 47, 47, 49, 50, 48, 50, 53, 50,
		      48, 51, 51, 49, 51, 50, 53, 50, 52, 55, 58, 62, 65, 65, 62, 64, 63, 65,
		      65, 67, 69, 69, 68, 68, 72, 73, 71, 71, 74, 76, 77, 75, 75, 72, 71, 69,
		      72, 71, 69, 67, 65, 65, 66, 62, 63, 62, 63, 61, 61, 60, 57, 59, 57, 59,
		      58, 59, 63, 63, 61, 57, 57, 56, 52, 54, 56, 56, 59, 59, 60, 60, 62, 60,
		      59, 60, 59, 59, 58, 60, 61, 65, 66, 66, 65, 62, 63, 66, 68, 69, 69, 68,
		      71, 69, 71, 71, 73, 70, 66, 65, 66, 68, 69, 67, 67, 68, 71, 70, 71, 71,
		      72, 74, 74, 74, 78, 81, 79, 80, 79, 79, 78, 80, 77, 74, 74, 74, 77, 74,
		      72, 71, 71, 71, 70, 69, 69, 68, 70, 67, 66, 68, 68, 69, 68, 66, 67, 67,
		      71, 70, 66, 67, 62, 66, 68, 66, 70, 71, 74, 76, 75, 75, 72, 72, 72, 71,
		      71, 71, 69, 68, 67, 67, 67, 65, 64, 63, 62, 63, 67, 66, 65, 61, 61, 60,
		      59, 56, 54, 52, 51, 52, 54, 52, 52, 56, 57, 60, 58, 57, 54, 57, 61, 62,
		      65, 70, 68, 64, 66, 68, 67, 65, 64, 67, 64, 61, 61, 61, 59, 56, 60, 64,
		      64, 66, 67, 65, 62, 60, 61, 63, 61, 63, 66, 61, 60, 61, 56, 54, 57, 58,
		      55, 60, 61, 65, 63, 61, 57, 58, 58, 54, 57, 55, 58, 59, 59, 61, 62, 60,
		      60, 63, 61, 59, 62, 62, 64, 61, 57, 57, 59, 61, 62, 61, 59, 62, 62, 61,
		      62, 63, 65, 64, 65, 63, 59, 61, 62, 66, 66, 67, 67, 68, 68, 67, 67, 64,
		      62, 63, 63, 67, 70, 71, 73, 74, 76, 76, 72, 71, 71, 72, 73, 72, 74, 77,
		      77, 74, 72, 71, 71, 73, 75, 74, 72, 72, 69, 70, 67, 71, 73, 74, 76, 75,
		      75, 77, 80, 82, 83, 81, 79, 78, 77, 76, 76, 74, 76, 75, 75, 74, 73, 74,
		      72, 75, 76, 72, 72, 71, 69, 69, 69, 71, 74, 75, 77, 80, 79, 77, 74, 77,
		      75, 71, 72, 72, 75, 71, 74, 71, 74, 74, 73, 73, 73, 74, 71, 72, 71, 69,
		      71, 70, 71, 70, 67, 67, 66, 69, 66, 65, 67, 65, 64, 63, 63, 64, 68, 66,
		      62, 60, 56, 56, 54, 53, 50, 50, 50, 50, 48, 48, 51, 49, 49, 47, 49, 49,
		      50, 51, 52, 53, 53, 52, 54, 57, 57, 60, 57, 59, 59, 57, 57, 57, 55, 55,
		      57, 56, 57, 55, 56, 54, 53, 53, 52, 51, 49, 50, 50, 50, 51, 49, 49, 49,
		      51, 52, 50, 52, 50, 50, 52, 53, 52, 51, 54, 56, 56, 56, 53, 53, 52, 50,
		      51, 54, 53, 54, 56, 58, 56, 55, 56, 55, 54, 52, 51, 50, 48, 46, 48, 50,
		      49, 46, 46, 43, 45, 44, 40, 43, 39, 38, 40, 38, 40, 37, 36, 36, 36, 34,
		      35, 34, 38, 38, 42, 44, 40, 38, 40, 40, 42, 43, 41, 38, 37, 39, 40, 43,
		      45, 50, 49, 47, 46, 48, 50, 47, 47, 45, 47, 51, 49, 48, 46, 43, 44, 44,
		      40, 42, 46, 44, 47, 49, 48, 46, 48, 48, 49, 49, 51, 51, 53, 54, 53, 54,
		      53, 54, 51, 54, 56, 57, 55, 54, 52, 51, 52, 52, 52, 48, 47, 46, 47, 49,
		      50, 52, 53, 57, 58, 59, 59, 62, 60, 62, 63, 65, 67, 65, 62, 63, 65, 60,
		      59, 59, 60, 57, 55, 54, 58, 60, 56, 56, 56, 55, 50, 51, 54, 58, 59, 61,
		      61, 61, 58, 55, 53, 51, 51, 55, 54, 52, 54, 53, 50, 52, 52, 53, 50, 53,
		      50, 45, 45, 48, 49, 48, 46, 45, 49, 51, 53, 54, 56, 58, 58, 59, 56, 56,
		      60, 63, 63, 65, 69, 67, 67, 67, 65, 65, 64, 62, 61, 63, 59, 58, 62, 60,
		      60, 58, 57, 53, 54, 56, 60, 60, 61, 62, 60, 58, 55, 56, 58, 60, 56, 57,
		      58, 55, 54, 54, 56, 56, 54, 58, 58, 56, 57, 54, 54, 58, 59, 60, 62, 59,
		      64, 63, 63, 63, 63, 62, 62, 63, 65, 65, 70, 69, 69, 71, 71, 73, 74, 72,
		      74, 75, 71, 71, 72, 72, 73, 70, 71, 74, 73, 73, 71, 73, 75, 75, 74, 73,
		      76, 72, 70, 74, 72, 75, 77, 76, 73, 74, 69, 69, 71, 69, 72, 70, 74, 74,
		      79, 78, 77, 77, 78, 80, 84, 79, 80, 82, 80, 79, 77, 80, 80, 79, 77, 76,
		      75, 77, 76, 72, 68, 68, 64, 64, 62, 64, 64, 66, 70, 69, 70, 66, 65, 66,
		      65, 62, 59, 57, 56, 57, 54, 55, 54, 52, 51, 48, 47, 43, 42, 43, 45, 48,
		      47, 45, 46, 47, 47, 45, 43, 44, 46, 45, 45, 41, 39, 40, 40, 38, 36, 38,
		      37, 34, 33, 36, 35, 36, 33, 33, 37, 41, 43, 45, 45, 47, 45, 44, 44, 45,
		      46, 47, 48, 50, 50, 50, 50, 50, 49, 48, 49, 49, 49, 48, 46, 43, 43};

const int graph3[] = {0, 3, 3, 3, 1, 2, 3, 1, 0, 3, 2, 0, 1, 0, 0, 0, 2, 1, 2, 4, 7, 7, 8, 10,
		      12, 11, 14, 13, 12, 11, 10, 11, 8, 8, 6, 8, 5, 3, 1, 3, 4, 6, 6, 7, 6,
		      4, 3, 2, -1, -1, 2, 1, -1, 0, 4, 1, 0, -1, -2, 0, -1, 1, 2, 2, 6, 3, 0,
		      0, -2, -1, -3, -4, -2, -1, 0, -1, 0, -1, 0, 0, 0, 0, -3, -1, 0, 0, 0, 3,
		      0, 1, 3, 5, 2, 5, 7, 6, 6, 7, 4, 6, 7, 9, 7, 6, 5, 7, 5, 7, 5, 6, 6, 7,
		      5, 1, -1, -1, 1, 0, -1, 1, 0, 5, 1, 2, 6, 6, 5, 5, 9, 6, 3, 3, 1, 1, 0,
		      -2, -3, -6, -2, 0, -3, -6, -6, -8, -8, -4, -4, -4, -4, -3, -2, -5, -4,
		      -2, -3, -1, -2, -4, -7, -2, -2, -2, -3, 0, -3, 0, 0, -1, -4, -7, -5, -5,
		      -9, -9, -10, -7, -9, -10, -11, -7, -10, -8, -9, -11, -7, -7, -2, -2, -3,
		      -3, -1, 1, 2, 3, 5, 3, 4, 1, 1, 1, 5, 2, 2, 4, 3, 4, 4, 4, 2, 1, 0, -1,
		      -1, 0, -1, -5, -1, 0, -1, 0, 1, 2, 5, 2, 3, 3, 3, 0, 1, 0, -1, 0, 1, 1,
		      1, 1, 2, 6, 7, 9, 5, 7, 7, 5, 2, 0, 1, 2, 3, 6, 4, 1, 0, 0, 3, 5, 2, 1,
		      0, 0, 0, -2, -1, -2, -4, -4, -3, -1, 1, 2, 1, 0, -2, 0, 0, 0, 2, 2, 3,
		      1, 1, 1, 3, 4, 5, 6, 2, 1, -1, -1, 2, 2, 1, 0, -1, 1, 1, 2, 5, 2, 6, 8,
		      9, 6, 6, 3, 2, 0, 0, 0, 1, 4, 7, 8, 8, 12, 11, 12, 16, 17, 19, 15, 13,
		      12, 12, 13, 16, 15, 16, 14, 11, 12, 7, 4, 2, 0, 1, 1, 0, 1, 0, 1, -2,
		      -6, -8, -8, -7, -8, -7, -8, -7, -9, -8, -11, -9, -9, -12, -14, -15, -14,
		      -15, -13, -15, -17, -18, -16, -16, -14, -15, -17, -20, -24, -22, -22,
		      -23, -28, -26, -29, -24, -22, -22, -19, -22, -24, -24, -25, -22, -18,
		      -19, -18, -20, -20, -23, -25, -23, -21, -22, -23, -26, -25, -27, -25,
		      -26, -27, -30, -28, -30, -34, -32, -31, -30, -26, -28, -27, -23, -23,
		      -25, -26, -22, -19, -20, -17, -18, -17, -16, -15, -12, -16, -16, -14,
		      -14, -12, -16, -13, -12, -12, -16, -16, -17, -17, -20, -20, -16, -14,
		      -18, -19, -21, -20, -22, -22, -20, -24, -25, -25, -24, -22, -21, -19,
		      -15, -17, -19, -18, -20, -21, -21, -22, -22, -20, -21, -21, -22, -22,
		      -22, -19, -19, -14, -17, -14, -16, -18, -18, -17, -18, -17, -17, -16,
		      -18, -14, -17, -13, -14, -16, -18, -19, -20, -22, -18, -16, -15, -15,
		      -14, -15, -19, -21, -20, -19, -21, -22, -23, -22, -23, -23, -25, -25,
		      -26, -23, -25, -27, -27, -25, -28, -27, -27, -26, -28, -30, -31, -32,
		      -35, -37, -38, -35, -35, -35, -33, -37, -35, -37, -37, -38, -41, -43,
		      -43, -45, -44, -41, -39, -39, -38, -36, -34, -31, -28, -29, -26, -27,
		      -29, -31, -33, -36, -35, -35, -33, -29, -27, -30, -26, -28, -28, -29,
		      -32, -31, -32, -33, -29, -28, -30, -29, -25, -26, -28, -27, -26, -29,
		      -28, -24, -25, -24, -25, -26, -24, -25, -28, -31, -32, -31, -29, -27,
		      -30, -33, -32, -30, -30, -27, -25, -26, -28, -28, -28, -27, -26, -26,
		      -25, -26, -26, -25, -26, -26, -29, -31, -36, -33, -32, -34, -33, -30,
		      -32, -34, -35, -32, -28, -29, -26, -25, -22, -21, -18, -17, -18, -21,
		      -22, -20, -19, -20, -20, -23, -24, -24, -24, -28, -30, -32, -32, -32,
		      -28, -28, -32, -32, -32, -30, -32, -32, -31, -27, -25, -27, -27, -26,
		      -23, -24, -26, -26, -25, -25, -23, -24, -24, -24, -23, -27, -26, -28,
		      -26, -24, -23, -24, -25, -25, -26, -25, -28, -26, -28, -31, -29, -29,
		      -27, -24, -21, -18, -17, -17, -16, -12, -14, -16, -14, -15, -16, -18,
		      -17, -20, -19, -23, -23, -22, -21, -21, -18, -20, -19, -22, -21, -23,
		      -26, -25, -22, -25, -28, -29, -32, -35, -34, -34, -35, -33, -34, -33,
		      -35, -33, -33, -33, -31, -27, -27, -30, -30, -31, -32, -29, -30, -27,
		      -28, -26, -27, -24, -24, -24, -27, -26, -27, -32, -33, -29, -29, -28,
		      -29, -32, -31, -31, -31, -34, -36, -38, -37, -39, -39, -37, -36, -36,
		      -36, -35, -36, -33, -36, -34, -33, -31, -30, -31, -32, -31, -32, -33,
		      -32, -33, -29, -27, -27, -28, -30, -29, -29, -28, -29, -30, -28, -23,
		      -22, -22, -20, -20, -22, -23, -19, -17, -17, -17, -16, -16, -17, -18,
		      -18, -21, -20, -19, -19, -21, -21, -19, -17, -17, -19, -17, -16, -16,
		      -18, -15, -15, -15, -19, -20, -20, -24, -21, -23, -25, -26, -24, -22,
		      -21, -22, -23, -25, -24, -20, -20, -22, -26, -29, -33, -33, -36, -39,
		      -40, -43, -43, -45, -49, -47, -47, -45, -42, -38, -40, -41, -41, -42,
		      -39, -38, -38, -38, -38, -36, -37, -39, -40, -40, -39, -39, -43, -41,
		      -45, -47, -46, -47, -45, -42, -43, -43, -46, -50, -53, -53, -55, -52,
		      -55, -53, -50, -47, -44, -44, -45, -42, -46, -48, -45, -44, -46, -48,
		      -50, -49, -46, -46, -48, -47, -44, -43, -45, -47, -47, -48, -49, -50,
		      -51, -52, -54, -56, -57, -58, -58, -61, -63, -64, -64, -67, -65, -63,
		      -64, -63, -65, -65, -61, -57, -57, -56, -58, -58, -58, -62, -63, -63,
		      -66, -62, -63, -64, -63, -61, -60, -61, -63, -61, -58, -59, -59, -61,
		      -59, -61, -64, -61, -61, -60, -62, -65, -67, -68, -70, -72, -70, -68,
		      -68, -69, -69, -70, -70, -69, -66, -64, -60, -61};
